主要是跟一個朋友打賭看能不能每天做一個leetcode,雖然我甚至不知道這個東西除了對要當軟工的人有用以外還能幹嘛XD
題目會給兩個字串,每遇到一個井字符號就相當於按下一次刪除,阿如果遇到已經被刪除的,不會往前刪(這一段要看懂英文比較困擾,我一直在想如果存到已經刪除的時候怎麼辦,後來才發現是這個意思)。
我這邊親切的告訴chargpt我要這樣的功能:
處裡字串的,功能如下
1.會輸入兩個字串
2.確定第一個字串有多少"#"符號,如果有出現就刪除前一個字符
3.確定第二個字串有多少"#"符號,如果有出現就刪除前一個字符
然後她回給我這些
def process_string(s):
"""
處理單個字串,如果有'#',則刪除前一個字符。
"""
result = []
for char in s:
if char == "#":
if result: # 確保result不為空
result.pop() # 刪除最後一個字符
else:
result.append(char) # 如果不是'#',將字符添加到列表中
return "".join(result) # 將列表轉換回字串
def main():
# 請用戶輸入兩個字串
string1 = input("請輸入第一個字串: ")
string2 = input("請輸入第二個字串: ")
# 處理字串
processed_string1 = process_string(string1)
processed_string2 = process_string(string2)
# 輸出結果
print("處理後的第一個字串: ", processed_string1)
print("處理後的第二個字串: ", processed_string2)
if __name__ == "__main__":
main()
再經過一些刪減整合之後變成以下
class Solution:
def backspaceCompare(self, s: str, t: str) -> bool:
def dosomestring(string):
result = []
for char in string:
if char == "#":
if result: # 確保result不為空
result.pop() # 刪除最後一個字符
else:
result.append(char) # 如果不是'#',將字符添加到列表中
return "".join(result) # 將列表轉換回字串
a = dosomestring(s)
b = dosomestring(t)
if a == b:
return True
else:
return False
不得不說用AI寫程式,真滴快。
但好像有複雜度相關的東西,但我畢竟不是學軟體的,看我同學有沒有想法囉。